<template>
	<view class="container">
		<uni-search-bar v-model="searchValue" placeholder="请输入内容搜索" bgColor="#EEEEEE" @confirm="search" />
		<uni-row>
			<uni-col :span="4" style="margin-left: 15px;">
				<uni-tag @click="navigateToGoods" :inverted="true" text="商品" type="primary" />
			</uni-col>
			<uni-col :span="4">
				<uni-tag @click="navigateToNotice" :inverted="true" text="公告" type="primary" />
			</uni-col>
		</uni-row>
	</view>
</template>

<script>
export default {
	data() {
		return {
			searchValue: "",
			apiBaseUrl: 'http://localhost:8080' // 提取 API 基础 URL
		}
	},
	methods: {
		search(res) {
			this.navigateToGoods();
		},
		navigateToGoods() {
			if (!this.searchValue) {
				uni.showToast({
					title: '请输入搜索内容',
					icon: 'none'
				});
				return;
			}

			this.performSearch('/pages/goods/goods', '/api/search/goods');
		},
		navigateToNotice() {
			if (!this.searchValue) {
				uni.showToast({
					title: '请输入搜索内容',
					icon: 'none'
				});
				return;
			}

			this.performSearch('/pages/notice/notice', '/api/search/notice');
		},
		performSearch(targetPage, apiUrl) {
			// 确保 apiBaseUrl 和 apiUrl 之间有一个斜杠
			const url = `${this.apiBaseUrl}${apiUrl.startsWith('/') ? '' : '/'}${apiUrl}`; // 拼接完整的 API URL
			const params = {
				query: this.searchValue
			};

			uni.request({
				url: url,
				method: 'POST', 
				header: {
					'content-type': 'application/json' // 设置请求头
				},
				data: JSON.stringify(params), // 将数据转换为 JSON 字符串
				success: (res) => {
					console.log('搜索结果:', res.data);
					// 假设后端返回的数据可以直接用于页面导航
					// 如果需要处理数据，可以在这里进行处理

					// 将搜索结果作为参数传递给新页面
					uni.navigateTo({
						url: `${targetPage}?data=${encodeURIComponent(JSON.stringify(res.data))}`
					});
				},
				fail: (err) => {
					console.error('搜索失败:', err);
					// 显示错误信息给用户
					uni.showToast({
						title: '搜索失败，请稍后再试',
						icon: 'none'
					});
				}
			});
		}
	}
}
</script>

<style>
.container {
	padding: 20px;
	font-size: 14px;
	line-height: 24px;
}
</style>